﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DiskInspector.Model.MetaDataAttributes;

namespace DiskInspector.Model.FileRecordStructure
{
    public class NonResidentAttributeHead : AttributeHead
    {
        [FieldLength(ByteLength = 4)]
        public override byte[] AttributeType { get; set; }

        [FieldLength(ByteLength = 4)]
        public override int AttributeLength { get; set; }

        [FieldLength(ByteLength = 1)]
        public override byte NonResidentFlag { get; set; }

        [FieldLength(ByteLength = 1)]
        public override byte AttributeNameLength { get; set; }

        [FieldLength(ByteLength = 2)]
        public override short AttributeNameOffset { get; set; }

        [FieldLength(ByteLength = 2)]
        public short Flags { get; set; }

        [FieldLength(ByteLength = 2)]
        public short AttributeID { get; set; }

        [FieldLength(ByteLength = 8)]
        public long RunListStartingVCN { get; set; }

        [FieldLength(ByteLength = 8)]
        public long RunListEndingVCN { get; set; }

        [FieldLength(ByteLength = 2)]
        public override short AttributeContentOffset { get; set; }

        [FieldLength(ByteLength = 2)]
        public short CompressionUnitSize { get; set; }

        [FieldLength(ByteLength = 4)]
        public byte[] Unused { get; set; }

        [FieldLength(ByteLength = 8)]
        public long AttributeContentAllocatedSize { get; set; }

        [FieldLength(ByteLength = 8)]
        public long AttributeContentActualSize { get; set; }

        [FieldLength(ByteLength = 8)]
        public long AttributeContentInitializedSize { get; set; }
    }
}
